[#494] Replace lettering prompt-copy UX with AI draft bubble generation#497
Conversation
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The #494 implementation is directionally aligned with the issue: AI draft actions now live in the cut review board, generated overlays are saved through the normal cuts JSON path, the focused editor opens for review/tuning, and per-cut overwrite is guarded by explicit confirmation. I did not find a product-code blocker in the reviewed source, but the live PR cannot be approved in its current GitHub state.
Findings
-
[high] The live PR is not mergeable against
main; GitHub reportsmergeStateStatus: DIRTYfor head05d67ab3ac65e542051eabdc730b72f92991637c.- File: N/A (branch state)
- Suggestion: rebase/merge current
main, resolve conflicts, push the updated head, and request re-review on the new commit.
-
[medium] No GitHub checks are reported for the PR head (
gh pr checks 497returns no checks fortask/494-ai-draft-bubble-generation).- File: N/A (CI state)
- Suggestion: ensure the expected check suite runs and is green on the updated head. Local typecheck/lint/build is useful context, but approval should be against a live, mergeable head with reported checks when available.
Decision
Requesting changes until the PR is mergeable and the live check state is resolved. After that, I can re-review the updated head; the current source review did not surface a separate functional blocker against issue #494.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The AI draft overlay flow itself is scoped correctly for issue #494: drafting starts from full cut review, generated overlays persist through the cuts JSON path, the focused editor is now positioned as the tuning surface, and overwrite confirmation exists for per-cut re-drafting. I am not approving the live PR head because the branch is currently stale/unmergeable against main and GitHub is reporting no live checks on the reviewed commit.
Findings
- [medium] The live PR head
05d67ab3ac65e542051eabdc730b72f92991637cis behindmainand GitHub marks the PRmergeable: false/mergeable_state: dirty, so this branch is not mergeable as reviewed.- Suggestion: rebase or merge
maininto the branch, resolve the resulting conflicts, and request re-review on the new head.
- Suggestion: rebase or merge
- [medium] Live commit status for
05d67ab3ac65e542051eabdc730b72f92991637creportsstate: pendingwithtotal_count: 0, andgh pr checks 497reports no checks on the branch.- Suggestion: push the refreshed branch and make sure the expected CI checks are attached to the current PR head before requesting approval.
Decision
Requesting changes until the PR is updated to a mergeable head with live checks attached.
05d67ab to
50e48eb
Compare
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
I re-reviewed PR #497 on the rebased live head 50e48eb202be45ac5f59b0b3eb31a969fa672d53. The earlier blockers were PR state only; on this head the branch is mergeable again, the expected lint-and-typecheck check is attached, and the AI-draft lettering flow remains aligned with issue #494.
Findings
- No blocking findings.
Decision
Approved on GitHub. I spot-checked the rebased diff for the #494 flow and did not find a merge-resolution regression in the AI draft actions, aiDraft persistence, overwrite confirmation, or focused-editor tuning path. lint-and-typecheck was still pending during review, so merge should still use the live current head/check state.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The rebased PR head 50e48eb202be45ac5f59b0b3eb31a969fa672d53 resolves the prior dirty/mergeability blocker and the #493/#494 source paths I re-checked still look compatible. However, live CI is red on the current head.
Findings
- [medium] Required
lint-and-typecheckfails duringnpm teston the current PR head. The job reports 3 failing tests:CutListPanelcannot findcut-list-panelbecause the rendered state iscuts-error/Invalid cuts file, and twoLetteringEditortests now receive an extra secondnullargument fromonSave.- File:
app/web/components/CutListPanel.test.tsx:2333 - File:
app/web/components/LetteringEditor.test.tsx:589 - File:
app/web/components/LetteringEditor.test.tsx:643 - Suggestion: update the affected tests/fixtures or implementation so the full
npm testsuite passes on GitHub, then request re-review on the new head.
- File:
Decision
Requesting changes until live lint-and-typecheck is green on the current PR head. I did not find a separate product-code blocker in the reviewed rebased source.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
I re-reviewed PR #497 on follow-up head 0cbd41dcaff8daddd373706af58e815481d3f4d0. This update is narrowly scoped to the failing tests called out in the previous CI run: it fixes the rebased CutListPanel mock signature and updates the two LetteringEditor onSave expectations for the current callback shape.
Findings
- No blocking findings.
Decision
Approved on GitHub for commit 0cbd41dcaff8daddd373706af58e815481d3f4d0. The product scope for #494 is unchanged; this head only adjusts tests to match the already-reviewed implementation. lint-and-typecheck was still pending during review, so merge should still use the live current head/check state.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The follow-up on 0cbd41dcaff8daddd373706af58e815481d3f4d0 is test-only, but it missed the failing CutListPanel mock that was called out in the prior review. The PR still cannot be approved as-is.
Findings
- [medium]
optsis referenced inside the AI-draftCutListPaneltest mock, but that mock still declares only(url: string). This leaves the intendedPUTbranch broken and should also fail typecheck becauseoptsis not in scope.- File:
app/web/components/CutListPanel.test.tsx:2265 - File:
app/web/components/CutListPanel.test.tsx:2305 - Suggestion: update this mock signature to accept
opts?: RequestInitas well, matching the other fixed mocks, then rerun/confirm livelint-and-typecheck.
- File:
Decision
Requesting changes until this remaining test fix is applied and the live GitHub check is green on the current head.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
I re-reviewed PR #497 on follow-up head eb1bfbfaea535bf589afb8a1c423f5d2da432670. This update is narrowly scoped to the remaining CutListPanel test mock-signature fix that was called out in the prior review.
Findings
- No blocking findings.
Decision
Approved on GitHub for commit eb1bfbfaea535bf589afb8a1c423f5d2da432670. The product scope for #494 is unchanged; this head only corrects the final test mock signature. lint-and-typecheck was still pending during review, so merge should still use the live current head/check state.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
Re-reviewed PR #497 on live head eb1bfbfaea535bf589afb8a1c423f5d2da432670. The latest follow-up is scoped to the remaining CutListPanel test mock signature, and it fixes the prior opts finding without changing the product implementation.
Findings
- No blocking findings.
Decision
Approved on GitHub. The previously reviewed #494 AI draft lettering flow remains intact, the incremental diff only updates the affected test mock signature, and live lint-and-typecheck passes on the current head.
Closes #494.
Summary
AI draftactions for eligible cartoon cutsVerification
npm run typechecknpm run lint -- --quiet app/lib/lettering-status.ts app/lib/lettering-status.test.ts app/lib/cuts.ts app/web/components/CutListPanel.tsx app/web/components/CutListPanel.test.tsx app/web/components/LetteringEditor.tsx app/web/components/LetteringEditor.test.tsxnpm run app:buildUnknown system error -122, write, including a single-fork runRisks
aiDraftmetadata + generated overlays), so regressions would most likely surface in cut status labeling or editor save transitionsapp/web/distartifacts were rebuilt for the UI change and are included in this PR